﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	[DataContract]
	public enum ОбластиДанныхОграниченияПравДоступа
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
		[EnumMember(Value = "{\"Ссылка\":\"2d57f9ee-e727-4fc3-8b1c-b18703f019fd\", \"Представление\":\"ОрганизацииСписок\"}")]
		ОрганизацииСписок = 0,//Организации (список)
		[EnumMember(Value = "{\"Ссылка\":\"f7ea80a7-5f33-4427-8559-0955fff20d90\", \"Представление\":\"ОрганизацииДанные\"}")]
		ОрганизацииДанные = 1,//Организации (данные)
		[EnumMember(Value = "{\"Ссылка\":\"dcd686de-f5a8-4574-af9e-c7550361e88f\", \"Представление\":\"КонтрагентыСписок\"}")]
		КонтрагентыСписок = 2,//Контрагенты (список)
		[EnumMember(Value = "{\"Ссылка\":\"b268ca17-129c-49c8-b80c-b2651558c665\", \"Представление\":\"КонтрагентыДанные\"}")]
		КонтрагентыДанные = 3,//Контрагенты (данные)
		[EnumMember(Value = "{\"Ссылка\":\"7818cd7a-7932-4923-9dc2-62973f6ea5a4\", \"Представление\":\"КонтрагентыКонтактнаяИнформация\"}")]
		КонтрагентыКонтактнаяИнформация = 4,//Контрагенты (контактная информация)
		[EnumMember(Value = "{\"Ссылка\":\"d761e75d-8a65-4847-b42b-626afcf1b97c\", \"Представление\":\"ТипыЗаметок\"}")]
		ТипыЗаметок = 5,//Типы заметок
		[EnumMember(Value = "{\"Ссылка\":\"151dd862-c0aa-431d-bc24-5787454ea3a2\", \"Представление\":\"ВнешниеОбработки\"}")]
		ВнешниеОбработки = 6,//Внешние обработки
		[EnumMember(Value = "{\"Ссылка\":\"b8e99849-6500-472b-b4b5-e6e06950bde4\", \"Представление\":\"ФизическиеЛица\"}")]
		ФизическиеЛица = 7,//Физические лица
		[EnumMember(Value = "{\"Ссылка\":\"e52053d9-1856-41b0-9db9-c502798614dc\", \"Представление\":\"Номенклатура\"}")]
		Номенклатура = 8,
		[EnumMember(Value = "{\"Ссылка\":\"ff6aa9e1-bc78-4f32-8e8f-ae0fb65762f8\", \"Представление\":\"СкладыДанные\"}")]
		СкладыДанные = 9,//Склады (данные)
		[EnumMember(Value = "{\"Ссылка\":\"d9876029-dca3-4a26-aaa1-fced2b17a56a\", \"Представление\":\"ПодразделенияДанные\"}")]
		ПодразделенияДанные = 10,//Подразделения (данные)
	}
	public static partial class ОбластиДанныхОграниченияПравДоступа_Значения//:ПеречислениеСсылка
	{
		public static readonly Guid ОрганизацииСписок = new Guid("87b11c8b-f003-fd19-4fc3-e7272d57f9ee");//Организации (список)
		public static readonly Guid ОрганизацииДанные = new Guid("55095985-f2ff-900d-4427-5f33f7ea80a7");//Организации (данные)
		public static readonly Guid КонтрагентыСписок = new Guid("55c79eaf-6103-8fe8-4574-f5a8dcd686de");//Контрагенты (список)
		public static readonly Guid КонтрагентыДанные = new Guid("65b20cb8-5815-65c6-49c8-129cb268ca17");//Контрагенты (данные)
		public static readonly Guid КонтрагентыКонтактнаяИнформация = new Guid("9762c29d-6e3f-a4a5-4923-79327818cd7a");//Контрагенты (контактная информация)
		public static readonly Guid ТипыЗаметок = new Guid("6a622bb4-f1fc-7cb9-4847-8a65d761e75d");//Типы заметок
		public static readonly Guid ВнешниеОбработки = new Guid("875724bc-4e45-a2a3-431d-c0aa151dd862");//Внешние обработки
		public static readonly Guid ФизическиеЛица = new Guid("e0e6b5b4-5069-e4bd-472b-6500b8e99849");//Физические лица
		public static readonly Guid Номенклатура = new Guid("02c5b99d-8679-dc14-41b0-1856e52053d9");
		public static readonly Guid СкладыДанные = new Guid("0fae8f8e-57b6-f862-4f32-bc78ff6aa9e1");//Склады (данные)
		public static readonly Guid ПодразделенияДанные = new Guid("edfca1aa-172b-6aa5-4a26-dca3d9876029");//Подразделения (данные)
		public static ОбластиДанныхОграниченияПравДоступа Получить(this ОбластиДанныхОграниченияПравДоступа Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static ОбластиДанныхОграниченияПравДоступа Получить(this ОбластиДанныхОграниченияПравДоступа Значение, Guid Ссылка)
		{
			if(Ссылка == ОрганизацииСписок)
			{
				return ОбластиДанныхОграниченияПравДоступа.ОрганизацииСписок;
			}
			else if(Ссылка == ОрганизацииДанные)
			{
				return ОбластиДанныхОграниченияПравДоступа.ОрганизацииДанные;
			}
			else if(Ссылка == КонтрагентыСписок)
			{
				return ОбластиДанныхОграниченияПравДоступа.КонтрагентыСписок;
			}
			else if(Ссылка == КонтрагентыДанные)
			{
				return ОбластиДанныхОграниченияПравДоступа.КонтрагентыДанные;
			}
			else if(Ссылка == КонтрагентыКонтактнаяИнформация)
			{
				return ОбластиДанныхОграниченияПравДоступа.КонтрагентыКонтактнаяИнформация;
			}
			else if(Ссылка == ТипыЗаметок)
			{
				return ОбластиДанныхОграниченияПравДоступа.ТипыЗаметок;
			}
			else if(Ссылка == ВнешниеОбработки)
			{
				return ОбластиДанныхОграниченияПравДоступа.ВнешниеОбработки;
			}
			else if(Ссылка == ФизическиеЛица)
			{
				return ОбластиДанныхОграниченияПравДоступа.ФизическиеЛица;
			}
			else if(Ссылка == Номенклатура)
			{
				return ОбластиДанныхОграниченияПравДоступа.Номенклатура;
			}
			else if(Ссылка == СкладыДанные)
			{
				return ОбластиДанныхОграниченияПравДоступа.СкладыДанные;
			}
			else if(Ссылка == ПодразделенияДанные)
			{
				return ОбластиДанныхОграниченияПравДоступа.ПодразделенияДанные;
			}
			return ОбластиДанныхОграниченияПравДоступа.ПустаяСсылка;
		}
		public static byte[] Ключ(this ОбластиДанныхОграниченияПравДоступа Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this ОбластиДанныхОграниченияПравДоступа Значение)
		{
			switch (Значение)
			{
				case ОбластиДанныхОграниченияПравДоступа.ОрганизацииСписок: return ОрганизацииСписок;
				case ОбластиДанныхОграниченияПравДоступа.ОрганизацииДанные: return ОрганизацииДанные;
				case ОбластиДанныхОграниченияПравДоступа.КонтрагентыСписок: return КонтрагентыСписок;
				case ОбластиДанныхОграниченияПравДоступа.КонтрагентыДанные: return КонтрагентыДанные;
				case ОбластиДанныхОграниченияПравДоступа.КонтрагентыКонтактнаяИнформация: return КонтрагентыКонтактнаяИнформация;
				case ОбластиДанныхОграниченияПравДоступа.ТипыЗаметок: return ТипыЗаметок;
				case ОбластиДанныхОграниченияПравДоступа.ВнешниеОбработки: return ВнешниеОбработки;
				case ОбластиДанныхОграниченияПравДоступа.ФизическиеЛица: return ФизическиеЛица;
				case ОбластиДанныхОграниченияПравДоступа.Номенклатура: return Номенклатура;
				case ОбластиДанныхОграниченияПравДоступа.СкладыДанные: return СкладыДанные;
				case ОбластиДанныхОграниченияПравДоступа.ПодразделенияДанные: return ПодразделенияДанные;
			}
			return Guid.Empty;
		}
	}
}